The HURD filesystem

As in traditional Unix, the filesystem is very important under HURD. Devices are represented by special files in the /dev directory and it is possible to mount filesystems by using the settrans command, which sets up a translator[*] on a directory.

A choice of two popular filesystems are available for disc-based filesystems: The ext2 filing system that was developed for Linux by Remy Card and the ufs filing system which has a BSD heritage. The nfs filesystem [#!nfs!#] is provided for accessing remote filesystem servers. Both the ext2 and ufs servers use the storeio server. In its turn, the storeio server communicates with a device directly, or with a file on a filesystem. The nfs server communicates with either the pfinet or the pflocal servers and could be run over other protocol families as servers for them become available.

The symlink and firmlink servers are both called by and subsequently call the filesystem servers in order to resolve symbolic and firm[*] links. This completes the view of a traditional Unix filesystem that a process has. The communications are summarised in Figure [*].

Figure: Communication between the HURD filesystem components.
[0mm,0mm][80mm,40mm]hurdfs.ps